"""
自动修复支付宝配置 - 使用ngrok地址
"""
import os
import sys
from pathlib import Path

# 设置 Windows 控制台编码
if sys.platform == 'win32':
    try:
        sys.stdout.reconfigure(encoding='utf-8')
    except:
        pass

# 切换到项目目录
os.chdir(Path(__file__).parent)

# 从用户提供的ngrok地址
NGROK_URL = "egoistic-max-wacky.ngrok-free.dev"
# 确保是完整的URL格式
if not NGROK_URL.startswith('http'):
    NGROK_URL = f"https://{NGROK_URL}"

print("=" * 60)
print("支付宝配置自动修复工具")
print("=" * 60)
print()
print(f"使用ngrok地址: {NGROK_URL}")
print()

# 配置内容
env_content = f"""# 支付宝配置
ALIPAY_APP_ID=9021000157661754
ALIPAY_NOTIFY_URL={NGROK_URL}/api/payment/alipay/notify
ALIPAY_RETURN_URL={NGROK_URL}/api/payment/alipay/return
ALIPAY_DEBUG=True

# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_DATABASE=xiang

# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# JWT配置
JWT_SECRET_KEY=your-secret-key-change-in-production
"""

# 写入.env文件
env_file = Path('.env')
try:
    with open(env_file, 'w', encoding='utf-8', newline='\n') as f:
        f.write(env_content)
    
    print("[✓] .env 文件已创建/更新")
    print()
    print("配置内容：")
    print(f"  ALIPAY_APP_ID=9021000157661754")
    print(f"  ALIPAY_NOTIFY_URL={NGROK_URL}/api/payment/alipay/notify")
    print(f"  ALIPAY_RETURN_URL={NGROK_URL}/api/payment/alipay/return")
    print(f"  ALIPAY_DEBUG=True")
    print()
    print("=" * 60)
    print("[✓] 配置完成！")
    print()
    print("重要提示：")
    print("1. 已更新为新的沙箱网关地址：https://openapi-sandbox.dl.alipaydev.com/gateway.do")
    print("2. 已更新APP_ID为：9021000157661754")
    print("3. 已配置ngrok回调地址")
    print("4. 请重启后端服务以使配置生效")
    print("=" * 60)
    
except Exception as e:
    print(f"[X] 错误：无法创建 .env 文件")
    print(f"    错误信息：{e}")
    print()
    print("请手动创建 .env 文件，内容如下：")
    print()
    print(env_content)
    sys.exit(1)

